#pragma once
#include "SFC_Types.h"
/** \brief SDL Fundation Class events
 */

enum class EventType { Unknow, Mouse, Window, Power };
enum class MouseEventType { Unknow, Down, Up, Move };
enum class WindowEventType { Unknow, Closing, Paint };
enum class PowerEventType { Unknow, Shutdown };
class MouseEvent
{
public:
	MouseEventType Type;
};

class PowerEvent
{
public:
	PowerEventType Type;
};

class WindowEvent
{
public:
	WindowEventType Type;
};

class SFC_Event
{
public:
	EventType Type;
	union {
		MouseEvent Mouse;
		PowerEvent Power;
		WindowEvent Window;
	};
	SFC_Point Forcus;
	std::string ToString();
	operator std::string();
};